一、行云管家数据库简介
截止目前,行云管家支持了以下这些数据库的运维审计功能:
数据库 | 默认端口 | 数据库版本 | 数据库工具推荐 | 行云管家版本 |
---|---|---|---|---|
MySQL | 3306 | 所有版本 | Navicat Premium、MySQL Shell、MySQL Workbench SQLyog、MySQL-Front、DataGrip、DBeaver |
所有版本 |
SQLServer | 1433 | 所有版本 | Navicat Premium、SSMS、DataGrip、SQLWB、DBeaver | 所有版本 |
Oracle | 1521 | 8i及以上 | Navicat Premium、PLSQL、Toad、SQLPlus、DataGrip、DBeaver | 所有版本 |
PostgreSQL | 5432 | 11.7及以上 | Navicat Premium、DataGrip、DBeaver | 所有版本 |
Redis | 6379 | 3.2.100及以上 | RedisDesktopManager | 所有版本 |
Vertica | 5433 | 7.1.1及以上 | DataGrip、DBeaver | 所有版本 |
Hive | 9083 10000 |
2.3.2及以上 | beeline、DataGrip、DBeaver | 所有版本 |
RedShift | 5439 | 所有版本 | Navicat Premium、DataGrip、DBeaver | 所有版本 |
MongoDB | 27017 | 所有版本 | Navicat Premium、Robo 3T | 所有版本 |
GaussDB | 5432 | GaussDB 200 | Navicat Premium | 6.2及以上 |
HANA | 30015 50013 |
HANA2.0 | DBeaver | 6.4及以上 |
Gbase | 5258 | Gbase8a | GBaseDataStudio | 6.5及以上 |
行云管家为用户提供了数据库访问的跳板机代理,用户通过跳板机在访问数据库时,所有的SQL语句将被审计记录下来。同时,还可将敏感数据设置为脱敏字段,在查询相关的字段数据时,将进行脱敏处理,保护数据不被泄露。
数据库审计原理:数据库审计提供跳板机访问串的功能,将您真实的用户名密码针对每一个用户进行隐藏,并生成一个临时的用户名与密码;此时并不会暴露数据库的真实密码,用户可以拿到访问串以任意形式去访问数据库;
跳板机(代理机):如果您要导入的数据库和行云管家在同一个局域网内,请使用“中转服务”作为数据库跳板机。如果您要导入的数据库和行云管家不在同一个局域网内,请使用“Proxy”作为数据库代理(Proxy宿主机需要是和数据库在同一个局域网内);
二、导入数据库
在“数据库管理”页面,点击“导入数据库”,在这里可以选择导入云数据库和本地数据库:
- 注意:无论是本地还是异地或云数据库,都可以使用“导入本地数据库”进行导入。
(1)如果您选择的是导入本地数据库,并且您所要导入的数据库不在如图已有的云账户中,请选择“使用新的云账户”。如果您要导入的数据库在图中的其中一个云账户里,请直接选择该云账户网络。这里以“使用新的云账户”为例;
- 注意:这里看到的这些云账户就是“主机管理”以及“数据库管理”菜单页面的云账户,主机设备资源以及数据库资源都是以云账户方式导入的;
(2)选择导入方式
在这里可以选择导入方式,可以通过“导入单个数据库”以及“模板文件批量导入”这两方式进行导入,这里以“导入单个数据库”为例;
(3)请为您本次接入的数据库所在网络创建一个名称(为云账户起名称);
(4)请为您本次导入的数据库创建一个名称;
(5)选择数据库代理
用户在行云管家中,通过数据库代理访问目标数据库,并由数据库代理承担SQL指令的拦截、审计、敏感指令告警等职责,在这里需要选择“数据库代理”;
-
本地数据库:如果您要导入的数据库和行云管家在同一个局域网内,请使用“中转服务”作为数据库代理;
-
其他数据库:如果您要导入的数据库和行云管家不在同一个局域网内,请使用“Proxy”作为数据库代理(Proxy宿主机需要是和数据库在同一个局域网内);
(6)填写数据库类型
对应不同数据库,请按下述指引来选择“数据库类型”,填写目标数据库地址(IP),填写数据库对应的端口号;
- (a)MySQL、SQLServer、Oracle、PostgreSQL、Redis、 Redshift、MongoDB:
请选择“数据库类型”,填写目标数据库地址(IP),填写数据库对应的端口号;
- (b)Hive:
Hive数据库支持用户密码认证、kerberos认证,两种认证方式都需要录入JDBC连接串,根据是单实例部署还是集群部署JDBC连接串不一样:
单实例部署JDBC连接串样例(jdbc:hive2://node1:10000/default;principal=hiveserver2principal)
集群部署JDBC连接串样例(jdbc:hive2://zk1:2181,zk2:2181,zk3:2181/;serviceDiscoveryMode=zooKeeper; zooKeeperNamespace=hiveserver2)。
JDBC连接串中地址如果有服务名,需要替换为具体地址或者在选择的代理机器上配置hosts映射。
Kerberos认证需要录入JDBC连接串、krb5.conf。
krb5.conf以下有样例,kdc、admin_server一般都是服务名,需要将他们配置到所选代理机器的hosts上。
- (c)Vertica数据库:
Vertica数据库支持用户密码认证、kerberos认证。
如果选择了kerberos认证,则需要录入数据库地址、端口、KerberosServiceName、krb5.conf、用户、principal、keytab。KerberosHostName可为空,KerberosHostName以及krb5.conf中kdc、admin_server需要在代理机器上配置hosts。KerberosServiceName、KerberosHostName在登录vertica后执行以下命令查看 select KERBEROS_CONFIG_CHECK() ;用户为principal对应的vertica用户。
(7)导入完成;
此时可以看到导入完成后的数据库的相关信息;
三、导入云数据库
在“数据库管理”页面,点击“导入数据库”,在这里可以选择导入云数据库,也就是通过云厂商提供的AK方式进行对接来导入云数据库:
- 注意:当前版本只支持“阿里云”、“腾讯云”、“华为云”(6.4版本支持)通过AK方式导入云数据库,其他云厂商请使用“导入本地数据库”方式进行导入。
(1)如果您选择的是导入云数据库,并且您所要导入的云数据库不在已有的云账户中,请选择“使用新的云账户”;
(2)指定云厂商;
(3)输入对应云厂商的AK;
(4)选择您云厂商里的云数据库;
(5)请为您接入的公有云云账户创建一个名称并完成导入;
此时可以看到导入完成后的数据库的相关信息;
四、数据库代理管理
点击“资源运维”下的“数据库运维”,可以进入“数据库代理”来管理和查看数据库代理情况;